﻿
using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Xml.Linq;
using Biblioteca.Utils;
using SERIX.Util;

namespace SERIX
{
    public partial class TiposBeneficiariosManut : Seguranca
    {

        string _operacao;
        string _idt_tpo_benef;

        protected void Page_Load(object sender, EventArgs e)
        {
            base.OnLoad(e);
            _operacao = Request["OP"];
            if (!String.IsNullOrEmpty(Request["idt_tpo_benef"]))
            {
                _idt_tpo_benef = Server.UrlDecode(Criptografia.Descriptografar(Request["idt_tpo_benef"]));
            }
            if (!Page.IsPostBack)
            {                
                switch (_operacao)
                {
                    case "R":
                        {
                            lblTitulo.Text = "Cadastro de Tipo de Beneficiario";
                            Cancelar_Button.Visible = false;
                            CTiposBeneficiarios tiposbeneficiarios = CTiposBeneficiarios.PesquisaporCodigo(_idt_tpo_benef, UsuAut.Login);
                            CarregaDados(tiposbeneficiarios);                           
                            DesabilitaControles();
                            break;
                        }
                    case "U":
                        {
                            lblTitulo.Text = "Cadastro de Tipo de Beneficiario";
                            CTiposBeneficiarios tiposbeneficiarios = CTiposBeneficiarios.PesquisaporCodigo(_idt_tpo_benef, UsuAut.Login);
                            CarregaDados(tiposbeneficiarios);
                            break;

                        }
                    case "I":
                        {
                            lblTitulo.Text = "Cadastro de Tipo de Beneficiario";
                            break;
                        }
                    case "D":
                        {
                            lblTitulo.Text = "Exclusão de Tipo de Beneficiario";
                            CTiposBeneficiarios tiposbeneficiarios = CTiposBeneficiarios.PesquisaporCodigo(_idt_tpo_benef, UsuAut.Login);
                            CarregaDados(tiposbeneficiarios);
                            DesabilitaControles();
                            break;
                        }
                    default: break;
                }                
            }
            
            tbDSC_TPO_BENEF.Focus();
        }

        protected void CarregaDados(CTiposBeneficiarios tiposbeneficiarios)
        {
            ddlCPF_OBR.SelectedValue = tiposbeneficiarios.Cpf_obr;
            ddlRG_OBR.SelectedValue = tiposbeneficiarios.Rg_obr;
            ddlCERT_OBR.SelectedValue = tiposbeneficiarios.Cert_obr;
            tbDSC_TPO_BENEF.Text = tiposbeneficiarios.Dsc_tpo_benef;
            ddlPROP_OBR.SelectedValue = tiposbeneficiarios.prop_obr;
        }

        protected void DesabilitaControles()
        {
            BiblioSERIX.DesabilitaControle(ddlCPF_OBR);
            BiblioSERIX.DesabilitaControle(ddlRG_OBR);
            BiblioSERIX.DesabilitaControle(ddlCERT_OBR);
            BiblioSERIX.DesabilitaControle(tbDSC_TPO_BENEF);
            BiblioSERIX.DesabilitaControle(ddlPROP_OBR);                      
        }

        protected void Ok_Button_Click(object sender, EventArgs e)
        {
            try
            {
                
                CTiposBeneficiarios tiposbeneficiarios;
                if (String.IsNullOrEmpty(_idt_tpo_benef) && _operacao[0].Equals('I'))
                {
                    _idt_tpo_benef = CTiposBeneficiarios.ObterNovoIdt(UsuAut.Login).ToString();
                }                
                tiposbeneficiarios = new CTiposBeneficiarios(_idt_tpo_benef, ddlCPF_OBR.SelectedValue, ddlRG_OBR.SelectedValue, ddlCERT_OBR.SelectedValue, tbDSC_TPO_BENEF.Text, ddlPROP_OBR.SelectedValue);
                switch (_operacao)
                {
                    case "I":
                        {
                            tiposbeneficiarios.Inserir(UsuAut.Login);
                            break;
                        }
                    case "U":
                        {
                            tiposbeneficiarios.Alterar(UsuAut.Login);
                            break;
                        }
                    case "D":
                        {
                            tiposbeneficiarios.Excluir(UsuAut.Login);
                            break;
                        }
                    default: break;
                }
                Response.Redirect("TiposBeneficiarios.aspx");
            }
            catch (Exception ex)
            {
                lblErro.Text = "*Erro: " + ex.Message;
                lblErro.Visible = true;
            }
        }

        protected void Cancelar_Button_Click(object sender, EventArgs e)
        {
            Response.Redirect("TiposBeneficiarios.aspx");
        }

    }
}